package com.tian.authen.service.impl;

import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import com.tian.authen.controller.response.OauthAccessTokenResponse;
import com.tian.authen.dao.OauthAccessTokenDao;
import com.tian.authen.entity.OauthAccessToken;
import com.tian.authen.service.IOauthAccessToken;
import com.tian.common.util.MD5Util;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import static com.tian.authen.entity.table.OauthAccessTokenTableDef.OAUTH_ACCESS_TOKEN;


/**
 * <pre>
 *
 * </pre>
 * @author zhump
 */
@Log4j2
@Service
public class OauthAccessTokenImpl extends ServiceImpl<OauthAccessTokenDao, OauthAccessToken>  implements IOauthAccessToken {

    @Autowired
    private OauthAccessTokenDao oauthAccessTokenDao;


    @Override
    public OauthAccessTokenResponse getAccessToken(String token) {
        String md5Token = MD5Util.getMD5Str(token);
        log.info("[OauthAccessTokenImpl]:{}",token);
        QueryWrapper queryWrapper = new QueryWrapper()
                .select(OAUTH_ACCESS_TOKEN.ALL_COLUMNS)
                .from(OAUTH_ACCESS_TOKEN)
                .where(OAUTH_ACCESS_TOKEN.TOKEN_ID.eq(md5Token));
        OauthAccessToken oauthAccessToken = oauthAccessTokenDao.selectOneByQuery(queryWrapper);
        OauthAccessTokenResponse oauthAccessTokenResponse = new OauthAccessTokenResponse();
        BeanUtils.copyProperties(oauthAccessToken, oauthAccessTokenResponse);
        return oauthAccessTokenResponse;
    }
}
